package string;

import java.util.Arrays;

/**
 * 重载的split方法
 */
public class SplitDemo2 {
    public static void main(String[] args) {
        /*
        String[] split(String regex)
        该方法拆分字符串时，如果最开始就是可拆分内容，则会首先拆分出一个“空字符串”
        如果遇到两个连续可拆分内容时，他们中间也会拆分出一个“空字符串”
        但是如果默认连续出现可拆分内容，那么之间拆分出的所有空字符串都会被忽略
         */
        String str = "=1=2=3=4=5=6=========7";
        String[] arr = str.split("=");
        System.out.println(Arrays.toString(arr)); //[, 1, 2, 3, 4, 5, 6, , , , , , , , , 7]

        /*
        String split(String regex,int limit)
         */
        String str2 = "a=b=c=d=e=f==========";
        String[] arr2 = str2.split("=",2); //仅拆分出2项
        System.out.println(Arrays.toString(arr2)); //[a, b=c=d=e=f==========]

        arr2 = str2.split("=",3); //仅拆分出3项
        System.out.println(Arrays.toString(arr2)); //[a, b, c=d=e=f==========]
        //拆分出20项，当不足时，则保留最多可拆分项（包括原本最后舍弃的空串）
        arr2 = str2.split("=",20);
        System.out.println(arr2.length); //16
        System.out.println(Arrays.toString(arr2)); //[a, b, c, d, e, f, , , , , , , , , , ]

        arr2 = str2.split("=",0); //与split(String regex)功能一致
        System.out.println(arr2.length); //6
        System.out.println(Arrays.toString(arr2)); //[a, b, c, d, e, f]
        //limit为负数时：应拆尽拆，能拆分出多少就保留多少（包括最后本应舍弃的空字符串）
        arr2 = str2.split("=",-1);
        System.out.println(arr2.length); //16
        System.out.println(Arrays.toString(arr2)); //[a, b, c, d, e, f, , , , , , , , , , ]
    }
}
